package aliyun

import alidns "github.com/alibabacloud-go/alidns-20150109/v4/client"

// AliyunConfig 阿里云配置结构体，用于存储阿里云服务访问所需的基本配置信息
// AccessUserName: 访问用户名
// AccessKeyId: 访问密钥ID
// AccessKeySecret: 访问密钥密钥
// Endpoint: 服务端点地址
type AliyunConfig struct {
	AccessUserName  string `json:"access_user_name"`
	AccessKeyId     string `json:"access_key_id"`
	AccessKeySecret string `json:"access_key_secret"`
	Endpoint        string `json:"endpoint"`
}

// AliyunClient 阿里云客户端结构体，封装了DNS客户端实例
type AliyunClient struct {
	DnsClient *alidns.Client
}

// AliyunClientInter 阿里云客户端接口，定义了创建客户端的通用方法
// T: 泛型参数，表示客户端的具体类型
type AliyunClientInter[T any] interface {
	// CreateClient 创建并返回指定类型的客户端实例
	// 返回值: 
	//   T: 泛型参数指定的客户端类型实例
	//   error: 创建过程中可能发生的错误
	CreateClient() (T, error)
}